Directional interpolative smoother

ABSTRACT

A method and system for smoothing a frame to remove jagged edges are presented. The method and system generates a smoothing filter with consolidated pixels. Edges within the smoothing filter are analyzed to select an edge direction used for smoothing. A smoothed pixel is generated based on a normalized linear combination of a first edge end pixel, a second edge end pixel and center entry of the smoothing filter. Subtle structure checking can be used to determine whether to use the smoothed pixel in place of the current pixel.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to digital image and video processing.More specifically, the present invention relates to methods of improvingimage quality of video streams.

2. Discussion of Related Art

Due to advancing semiconductor processing technology, integratedcircuits (ICs) have greatly increased in functionality and complexity.With increasing processing and memory capabilities, many formerly analogtasks are being performed digitally. For example, images, audio and evenfull motion video can now be produced, distributed, and used in digitalformats.

FIG. 1 is an illustrative diagram of a portion of interlaced digitalvideo stream 100 most often used in television systems. Interlaceddigital video stream 100 comprises a series of individual fields 100_1to 100_N, of which the first ten fields are shown. Even fields containeven numbered rows while odd fields contain odd numbered rows. Forexample if a frame has 400 rows of 640 pixels, the even field wouldcontains rows 2, 4, . . . 400 and the odd field would contains rows 1,3, 5, . . . 399 of the frame. In general for an interlaced video streameach field is formed at a different time. For example, an interlacedvideo capture device (e.g. a video camera) captures and stores the oddscan lines of a scene at time T as field 100_1, then the video capturedevice stores the even scan lines of a scene at time T+1 as field 100_2.The process continues for each field.

Interlaced video systems were designed when bandwidth limitationsprecluded progressive (i.e., non-interlaced) video systems with adequateframe rates. Specifically, interlacing two 30 fps fields achieved aneffective 60 frame per second frame rate because the phosphors used intelevision sets would remain “lit” while the second field is drawn.Progressive video streams use complete frames, including both the evenand odd scan lines instead of fields. Because progressive scan providesbetter display quality, computer systems, which were developed muchlater than the original television systems, use progressive scan displaysystems. Furthermore, many modern televisions and television equipmentare being developed to use progressive video streams. To maintaincompatibility with existing interlaced video systems, modern progressivesystems use deinterlacing techniques to convert interlaced video streamsinto progressive video streams.

FIGS. 2(a) and 2(b) illustrate a typical method of generating aprogressive video stream 200 from an interlaced video stream 100.Specifically each field 100_X of interlaced video stream 100 isconverted to a frame 200_X of progressive video stream 200. Theconversion of a field to a frame is accomplished by generating themissing scan lines in each frame by copying or interpolating from thescan lines in the field. For example, as illustrated in FIG. 2(b) field100_1 having odd scan lines 100_1_1, 100_1_3, 100_1_5, . . . 100_1_N, isconverted into a frame 200_1 by copying scan lines 100_1_X as odd scanlines 200_1_X, where X is an odd number and creating even scan lines200_1_Y, where Y is an even number. Even scan lines 200_1_Y can becreated by copying the preceding odd scan line 200_1_Y−1. This techniqueis commonly known as line repeat. Better results can be obtained usingvarious interpolation schemes to generate the missing scan lines. Forexample, one interpolation scheme simply averages odd scan line200_1_Y−1 with odd scan line 200_1_Y+1 to generate even scan line200_1_Y. Other interpolation schemes may use weighted averages or othermore complicated ways to combine data from the existing scan lines togenerate the missing scan lines. De-interlacing techniques that use datafrom one field to convert the field into a frame are often calledintrafield de-interlacing or 2D deinteralcing. A well known problem withintrafield deinterlacing is that diagonal lines in the deinterlacedframes appear jagged.

To minimize jaggedness, most deinterlacers incorporate anotherdeinterlacing technique known as interfield deinterlacing or 3Ddeinterlacing. Interfield deinterlacing involves generating the missingscan lines by interpolating the missing pixels using data from adjacentfields. While interfield deinterlacing reduces jaggedness of non-movingdiagonal lines, moving diagonal lines (for example a diagonal line on amoving object) still have a jagged appearance.

Hence, there is a need for a method or system that can be used withdeinterlaced frames to correct jaggedness of diagonal lines of movingobjects.

SUMMARY

Accordingly, the present invention provides a method and system forenhancing a frame to reduce the jaggedness of diagonal lines of movingobjects in a video stream. In one embodiment of the present invention,an image enhancer determines whether a current pixel is a still pixel.If the current pixel is not a still pixel the current pixel is enhancedto reduce jaggedness. Specifically, a pixel consolidation unitconsolidates pixels to form a smoothing filter of consolidated pixels.The smoothed pixel is calculated based on consolidated pixels from thesmoothing filter.

In particular, the smoothing filter is analyzed and a selected edgedirection of a selected edge is chosen. In some embodiments of thepresent invention the selected edge is the dominant edge in thesmoothing filter. In other embodiments both the dominant edge and asecondary edge are analyzed to determine which should be selected as theselected edge. A first edge end pixel and a second edge end pixel arecalculated from the selected edge. In one embodiment of the presentinvention the smoothed pixel is equal to a normalized linear combinationof the first edge end pixel, the second edge end pixel and the centerentry of the smoothing filter.

Some embodiments of the present invention also includes a structurecharacterization unit which analyzes the pixels around the current pixeland provides a structure characteristic, which can be used to determinewhether using the smoothed pixel would obscure subtle structures in theimage. The structure characterization unit includes a pixel comparisonunit that generates structure checksum bit groups that are combined toform a structure checksum. The structure checksum is used to index alookup table containing structure characteristics for each correspondingchecksum value. For the image smoother, the structure characteristicindicates the presence of subtle structure.

The present invention will be more fully understood in view of thefollowing description and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of an interlaced video stream.

FIGS. 2(a) and 2(b) illustrate a deinterlacing process to form ade-interlaced video stream.

FIG. 3 is a block diagram of an image smoother in accordance with oneembodiment of the present invention.

FIG. 4 illustrates the nomenclature used to describe the pixels of avideo buffer in accordance to one embodiment of the present invention.

FIG. 5 is block diagram of a pixel consolidation unit in accordance withone embodiment of the present invention.

FIG. 6 is a smoothing filter in accordance with one embodiment of thepresent invention.

FIG. 7 is a block diagram of an edge detection unit in accordance withone embodiment of the present invention

FIG. 8 is a block diagram of an edge measure calculation unit inaccordance with one embodiment of the present invention.

FIG. 9(a)-9(f) are block diagrams of an edge threshold checking unit andthe components of the edge-threshold checking unit in accordance withone embodiment of the present invention.

FIG. 10 is a block diagram of a smoothed pixel calculation unit inaccordance with one embodiment of the present invention.

FIG. 11 is a block diagram of an output pixel selection unit inaccordance with one embodiment of the present invention.

FIGS. 12(a) and 12(b) are block diagrams of subtle structure checkingunits in accordance with the present invention.

FIGS. 13(a)-13(p) illustrate pixel patterns in accordance with oneembodiment of the present invention.

DETAILED DESCRIPTION

As explained above, deinterlaced frames typically have jagged edges ondiagonal lines of moving objects. To reduce the jagged appearance thepresent invention performs directional smoothing. FIG. 3 is a blockdiagram of an image smoother 300 in accordance with one embodiment ofthe present invention. Image smoother 300 includes a video buffer 310, astill pixel detection unit 320, a pixel consolidation unit 330, asmoothing filter 340, an edge detection unit 350, an edge thresholdchecking unit 360, a smoothed pixel calculation unit 370, a subtlestructure checking unit 380, and an output pixel selection unit 390.

Image smoothing is performed on a pixel by pixel basis on a currentpixel P(i,j) from a current frame that is being processed. Because imagesmoothing only requires luminance data, when pixels are used herein forcalculation, luminance value of the pixel is implied. Thus for example,in an equation such as EXAMPLE=2*P(x,y), EXAMPLE is equal to two timesthe luminance of pixel P(x,y). In general pixel data from the currentframe are stored in video buffer 310 in YUV format. Thus, luminancevalues are easily obtained. However some embodiments of the presentinvention may use RGB or some other format in which the luminance valuemust be calculated from the pixel data. Pixel data from video buffer 310is provided to still pixel detection unit 320, pixel consolidation unit330, subtle structure checking unit 380, and output pixel selection unit390. Still pixel detection unit 320 determines whether the current pixelP(i,j) is a still pixel and generates a still pixel signal STILL_P tooutput pixel selection unit 390. Pixel consolidation unit 330 calculatesconsolidated pixels to create smoothing filter 340 as described below.Consolidated pixel data C_P_D from smoothing filter 340 is provided toedge detection unit 350, edge threshold checking unit 360, and smoothedpixel calculation unit 370. Edge detection unit 350 analyzesconsolidated pixel data C_P_D from smoothing filter 340 to determine adominant edge and a secondary edge in smoothing filter 340. Dominantedge information D_E_I and secondary edge information S_E_I is providedto edge threshold checking unit 360, which determines whether thedetected dominant edge and secondary edge are strong enough to be usedfor smoothing. Edge threshold checking unit 360 (which is described indetail below) provides an edge threshold control signal E_T_C to outputpixel selection unit 390 and a first edge end pixel FEEP and a secondedge end pixel SEEP to smoothed pixel calculation unit 370. Smoothedpixel calculation unit 370, which calculates a smoothed pixel SP(i,j)using consolidated pixel data C_P_D from smoothing filter 340, firstedge end pixel FEEP from edge threshold checking unit 360, and secondedge end pixel SEEP from edge threshold checking unit 360. In someembodiments of the present invention, secondary edge information S_E_Iis neither calculated nor used. Smoothed pixel SP(i,j) is used in placeof current pixel P(i,j) if certain conditions (as described below) aremet (or certain conditions are unmet). Subtle structure checking unit380 determines whether the area around current pixel P(i,j) containssubtle structures that should not be smoothed. Subtle structure checkingunit produces a subtle structure signal SS for output selection unit390. Output selection unit 390 selects either current pixel P(i,j) orsmoothed pixel SP(i,j) as the current output pixel OP(i,j) depending onthe state of still pixel signal STILL_P, subtle structure signal SS, andedge threshold control signal E_T_C.

Video buffer 310 is typically a plurality of line buffers. The minimumnumber of line buffers in video buffer 310 depends on the size ofsmoothing filter 340. For clarity the examples presented herein use a3×3 smoothing filter. However, one skilled in the art can easily adaptthe teachings presented herein to use smoothing filters of differentsizes. For a 3×3 smoothing filter, video buffer 310 includes three linebuffers. The line buffers are used circularly so that at any momentvideo buffer 310 includes a current line, a previous line, and a nextline. FIG. 4 illustrates a portion of video buffer 310 around currentpixel P(i,j). For clarity the pixels near current pixel P(i,j) arereferenced using a coordinate system centered on current pixel P(i,j).The first coordinate indicates the vertical position and the secondcoordinate indicates the horizontal position. Thus, the pixel abovecurrent pixel P(i,j) is pixel P(i−1,j). Conversely, the pixel belowcurrent pixel P(i,j) is pixel P(i+1,j). The pixel just to the left ofcurrent pixel P(i,j) is pixel P(i,j−1). The pixel just to the right ofcurrent pixel P(i,j) is pixel P(i,j+1).

As explained above, moving objects with diagonal lines cause excessivejaggedness. Therefore, most embodiments of the present invention onlysmooth non-still (i.e. moving pixels). Thus, image smoother 300 includesstill pixel detection unit 320 to determine whether current pixel P(i,j)is a still pixel. However, other embodiments of the present inventionmay omit still pixel detection unit 320 and smooth every pixel. Becausestill pixel detection is not an integral part of the present invention,almost any still pixel detection techniques can be used with the presentinvention. For example, the still pixel detection unit disclosed in U.S.patent application Ser. No. 10/659,038-3279, filed Sep. 9, 2003,entitled “Still Pixel Detection Using Multiple Windows and Thresholds”by Zhu et al., which is incorporated herein by reference; can be usedfor still pixel detection unit 320. Still pixel detection is alsodescribed in China Patent Application# 03128819.7, filed May 23, 2003.Still pixel detection unit 320 provides a still pixel signal STILL_P,which indicates whether current pixel P(i,j) is a still pixel, to outputpixel selection unit 390. In image smoother 300, when current pixelP(i,j) is a still pixel, still pixel signal STILL_P is driven to logichigh. Conversely when current pixel P(i,j) is a moving pixel (i.e.,non-still pixel) still pixel signal STILL_P is driven to logic low.

Pixel consolidation unit 330 calculates consolidated pixels to createsmoothing filter 340. A consolidated pixel is calculated by normalizinga consolidation size CS number of consecutive pixels in the same line.In generating a consolidated pixel, the width of each pixel is assumedto be one. The consolidation size CS can be any positive real number(i.e., consolidation size CS does not need to be an integer). Therefore,the calculation of a consolidated pixel may make use of partial pixels.For clarity, the set of pixels used to calculate a consolidated pixel isreferred to as a consolidation range.

FIG. 6 illustrates smoothing filter 340. As explained above, smoothingfilter 340 is a 3×3 filter, i.e. it makes use of nine (which is equal to3 times 3) consolidated pixels. However other embodiments of the presentinvention can use filters of a different size, which subsequently needsa different number of consolidated pixels. The number of consolidatedpixels is equal to the size of the smoothing filter. Smoothing filter340 is formed by calculating the consolidated pixel centered at theposition of the current pixel P(i,j), and eight consolidated pixelsaround the current pixel P(i,j). As shown in FIG. 6, the center entryC_P4 represents the consolidated pixel calculated centered at theposition of the current pixel P(i,j), and the entries C_P0, C_P1, C_P2,C_P3, C_P5, C_P6, C_P7 and C_P8 are the consolidated pixels calculatedat the positions above left, above center, above right, left center,right center, below left, below center and below right of current pixelP(i,j), respectively. Consolidated pixels C_P0, C_P1 and C_P2 arecalculated using the pixels in line i−1 (i.e. the previous line) of theframe. Consolidated pixels C_P3, C_P4 and C_P5 are calculated using thepixels in line i (i.e., the current line) of the frame. Consolidatedpixels C_P6, C_P7 and C_P8 are calculated using the pixels in line i+1(i.e. the next line) of the frame.

Consolidation ranges of consecutive consolidated pixels in the same lineare adjacent to each other. For example, if the consolidation range sizeis equal to 2, then consolidated pixel C_P4, which is calculatedcentered at the current pixel P(i,j) is equal to the normalization ofthe current pixel P(i,j), half of pixel P(i,j−1), and half of pixelP(i,j+1). Equation EQ1 shows symbolically how to calculate consolidatedpixel C_P4, when consolidation size CS is equal to 2.C _(—) P 4={P(i,j)+[P(i,j−1)+P(i,j+1)]/2}/2  (EQ1)The consolidation range for the consolidated pixel C_P3 is to the leftof the consolidation range of consolidated pixel C_P4 and includes halfof pixel P(i,j−1), pixel P(i,j−2) and half of pixel P(i,j−3). EquationEQ2 shows symbolically how to calculate consolidated pixel C_P3, whenconsolidation size CS is equal to 2.C _(—) P 3={P(i,j−2)+[P(i,j−1)+P(i,j−3)]/2}/2  (EQ2)The consolidation range for consolidated pixel C_P5 is to the right ofthe consolidation range of consolidated pixel C_P4 and includes half ofpixel P(i,j+1), pixel P(i,j+2), and half of pixel P(i,j+3), Equation EQ3shows symbolically how to calculate consolidated pixel C_P5, whenconsolidation size CS is equal to 2.C _(—) P 5={P(i,j+2)+[P(i,j+1)+P(i,j+3)]/2}/2  (EQ3)Similarly, consolidated pixels C_P0, C_P1 and C_P2 are calculated usingpixels above the pixels used by consolidated pixels C_P3, C_P4 and C_P5,respectively, and consolidated pixels C_P6, C_P7 and C_P8 are calculatedusing pixels below the pixels used by consolidated pixels C_P3, C_P4 andC_P5. Equations EQ4, EQ5, EQ6, EQ7, EQ8, and EQ9 shows symbolically howto calculate consolidated pixels C_P0, C_P1, C_P2, CP_P6, C_P7, andC_P8, respectively, when consolidation size CS is equal to 2.C _(—) P 0={P(i−1,j−2)+[P(i−1,j−1)+P(i−1,j−3)]/2}/2  (EQ4)C _(—) P 1={P(i−1,j)+[P(i−1,j−1)+P(i−1,j+1)]/2}/2  (EQ5)C _(—) P 2={P(i−1,j+2)+[P(i−1,j+1)+P(i−1,j+3)]/2}/2  (EQ6)C _(—) P 6={P(i+1,j−2)+[P(i+1,j−1)+P(i+1,j−3)]/2}/2  (EQ7)C _(—) P 7={P(i+1,j)+[P(i+1,j−1)+P(i+1,j+1)]/2}/2  (EQ8)C _(—) P 8={P(i+1,j+2)+[P(i+1,j+1)+P(i+1,j+3)]/2}/2  (EQ9)

Equation EQ10 shows symbolically how to calculate consolidated pixelC_P4, when consolidation size CS is an arbitrary positive real number.In equation EQ10, z is equal to the integer portion of half the sum ofthe consolidation size CS plus 1 (i.e., z=int((CS+1)/2)).$\begin{matrix}{{C\_ P4} = \frac{{\left\lbrack {{p\left( {i,{j + z}} \right)} + {p\left( {i,{j - z}} \right)}} \right\rbrack*\frac{\left\lbrack {{CS} - \left( {{2*z} - 1} \right)} \right\rbrack}{2}} + {\sum\limits_{n = {j - z + 1}}^{j + z - 1}{p\left( {i,n} \right)}}}{CS}} & \left( {{EQ}\quad 10} \right)\end{matrix}$The summation portion of equation EQ10 adds the luminance values of thewhole pixels in the consolidation range. The factor [CS−(2*z−1)] iscalled the partial pixel portion PPP, which represents the portion ofthe pixel p(i,j+z) and pixel p(i,j−z) that are part of the consolidationrange. For example if consolidation size CS is equal to 2, partial pixelportion PPP is equal to 0.5, thus half of pixel P(i,j−1) and half ofpixel P(i,j+1) are in the consolidation range and should be used withpixel P(i,j) to calculate consolidated pixel C_P4. When consolidationsize CS is equal to an odd integer, partial pixel portion PPP is equalto 0, which indicates that pixel p(i,j+z) and pixel p(i,j−z) are justoutside of the consolidation range and are not used to calculate thevalue of consolidated pixel C_P4.

The consolidation range of consolidated pixel C_P3 ends within pixelp(i,j−z) (or just after pixel p(i,j−z) if CS is an odd integer). Becauseconsolidated pixels are adjacent to each other, the portion of pixelp(i,j−z) that is within the consolidation range of consolidated pixelC_P3 is the portion of pixel p(i,j−z) that is not in the consolidationrange of consolidated pixel C_P4. Thus, the portion of pixel p(i,j−z)that is within the consolidation range of consolidated pixel C_P3 isequal to {1−[CS−(2*z−1)]/2}. The consolidation range of consolidatedpixel C_P3 begins within pixel p(i,j−zl), where zl is equal to theinteger portion of the sum of 1.5 times consolidation size CS and 0.5(i.e., zl=int(1.5*CS+0.5)). The amount of pixel p(i,j−zl) that is in theconsolidation range of consolidated pixel C_P3 is equal to theconsolidation size minus the number of whole pixels minus the amount ofpixel p(i,j−z) that is in the consolidation range of consolidated pixelC_P3. This amount can be calculated as((CS−(1−(CS−(2*z−1))/2)−int((CS−(1−(CS−(2*z−1))/2)), which simplifies to(1.5*CS−1.5+z)−int(1.5*CS−1.5+z). Equation EQ11 shows symbolically howto calculate consolidated pixel C_P3. $\begin{matrix}{{C\_ P3} = \frac{\begin{matrix}\left\{ {{{p\left( {i,{j - {z1}}} \right)}*\left( {\left( {{1.5{CS}} - 1.5 + z} \right) - {{int}\left( {{1.5*{CS}} - 1.5 + z} \right)}} \right)} +} \right. \\\left. {{\left. {p\left( {i,{j - z}} \right)} \right\rbrack*\left( {1 - \frac{\left( {{CS} - \left( {{2*z} - 1} \right)} \right)}{2}} \right)} + {\sum\limits_{n = {j - {z1} + 1}}^{j - {({z + 1})}}{p\left( {i,n} \right)}}} \right\}\end{matrix}}{CS}} & \left( {{EQ}\quad 11} \right)\end{matrix}$

Similar reasoning can be used to derive the equations to calculateconsolidated pixel C_P5, which is provided in equation EQ12.$\begin{matrix}{{C\_ P5} = \frac{\begin{matrix}\left\{ {{{p\left( {i,{j + {z1}}} \right)}*\left( {\left( {{1.5{CS}} - 1.5 + z} \right) - {{int}\left( {{1.5*{CS}} - 1.5 + z} \right)}} \right)} +} \right. \\\left. {{\left. {p\left( {i,{j + z}} \right)} \right\rbrack*\left( {1 - \frac{\left( {{CS} - \left( {{2*z} - 1} \right)} \right)}{2}} \right)} + {\sum\limits_{n = {j + z + 1}}^{j + {z1} - 1}{p\left( {i,n} \right)}}} \right\}\end{matrix}}{CS}} & {\quad\left( \quad{E\quad Q\quad 12} \right)\quad}\end{matrix}$

Consolidated pixels C_P0, C_P1, and C_P2 can be calculated by replacing“i” with “i−1” in equations EQ11, EQ10, and EQ12, respectively (i.e.,using pixels above the pixels used to calculate consolidated pixelsC_P3, C_P4, and C_P5). Similarly, Consolidated pixels C_P6, C_P7, andC_P8 can be calculated by replacing “i” with “i+1” in equations EQ11,EQ10, and EQ12, respectively (i.e., using pixels below the pixels usedto calculate consolidated pixels C_P3, C_P4, and C_P5).

In general, larger consolidation sizes should be used to catch edgeshaving smaller slopes. However, large consolidation size may causeblurring of the frame. Thus, most embodiments of the present inventionuse consolidation sizes in the range of 1 to 5, inclusive. Furthermore,choosing consolidation sizes equal to odd integer values results inlower computational overhead because only whole pixels are included inthe consolidation range. When consolidation size CS is an odd integer,the value (CS−1)/2+1 is always an integer. Thus, z which equalsint((CS−1)/2+1) is the same as just ((CS−1)/2+1). Therefore partialpixel portion PPP of consolidated pixel C_P4 is equal to [CS−(2*z−1)]would be equal to zero. Thus equation EQ10 can be simplified intoequation EQ13, which shows symbolically how to calculate consolidatedpixel C_P4 when consolidation size CS is a positive odd integer.$\begin{matrix}{{C\_ P4} = \frac{\sum\limits_{n = {j - z + 1}}^{j + z - 1}{p\left( {i,n} \right)}}{CS}} & \left( {{EQ}\quad 13} \right)\end{matrix}$

Similarly, equation EQ11 can be simplified into equation EQ14, whichshows how to calculate consolidated pixel C_P3, when consolidation sizeCS is a positive odd integer. $\begin{matrix}{{C\_ P3} = \frac{{p\left( {i,{j - z}} \right)} + {\sum\limits_{n = {j - {z1} + 1}}^{j - {({z + 1})}}{p\left( {i,n} \right)}}}{CS}} & \left( {{EQ}\quad 14} \right)\end{matrix}$which can be further simplified to equation EQ15. $\begin{matrix}{{C\_ P3} = \frac{\sum\limits_{n = {j - {z1} + 1}}^{j - z}{p\left( {i,n} \right)}}{CS}} & \left( {{EQ}\quad 15} \right)\end{matrix}$

Similarly, equation EQ12 can be simplified to equation EQ16, which showssymbolically how to calculate consolidated pixel C_P5 when consolidationsize CS is a positive odd integer. $\begin{matrix}{{C\_ P5} = \frac{\sum\limits_{n = {j + Z}}^{j + {z1} - 1}{p\left( {i,n} \right)}}{CS}} & \left( {{EQ}\quad 16} \right)\end{matrix}$

When consolidation size CS is a positive odd integer, consolidatedpixels C_P0, C_P1, and C_P2 can be calculated by replacing “i” with“i−1” in equations EQ15, EQ13, and EQ16, respectively (i.e., usingpixels above the pixels used to calculate consolidated pixels C_P3,C_P4, and C_P5). Similarly, when consolidation size CS is a positive oddinteger, consolidated pixels C_P6, C_P7, and C_P8 can be calculated byreplacing “i” with “i+1” in equations EQ15, EQ13, and EQ16, respectively(i.e., using pixels below the pixels used to calculate consolidatedpixels C_P3, C_P4, and C_P5).

FIG. 5 is a block diagram for a pixel consolidation unit 500, designedfor consolidation size CS being equal to a positive odd integer number.Specifically, consolidation size CS is equal to 2*m+1, where m is zeroor a positive integer. Pixel consolidation unit 500 includes an adder510 and a divider 520. Adder 510 has 2*m+1 input ports I_P(−m) . . .I_P(−1), I_P(0), I_P(1), . . . I_P(m). Adder 510 adds the values frominput ports I_P(−m) . . . I_P(−1), I_P(0), I_P(1), . . . I_P(m) togenerate an output sum SUM that is provided to a numerator input portI_N of divider 520. Divider 520 divides the value at numerator inputport I_N by the value at a denominator input port I_D to generate anoutput value at output port O. As illustrated in FIG. 5, when pixelsP(i,j−m), . . . , P(i,j−1), P(i,j), P(i,j+1), . . . , P(i,j+m) areapplied on input ports I_P(−m) . . . I_P(−1), I_P(0), I_P(1), . . .I_P(m) of adder 510, respectively, and consolidation size CS is appliedon denominator input port I_D of divider 520, pixel consolidation unit500 provides consolidated pixel C_P4 at output port O of divider 520.Pixel consolidation unit 500 can be used to generate the otherconsolidation pixels of filter 340 by applying the appropriate pixels(as provided by equations EQ13, EQ15, and EQ16) to the input ports ofadder 510.

As stated above, edge detection unit 350 determines the dominant andsecondary edges in smoothing filter 340. Specifically, an edge measureis calculated for each edge in a set of possible edges. Various edgemeasures can be used, for example one embodiment of the presentinvention uses slope across the edge as the edge measure. The edge withthe highest edge measure is the dominant edge and the edge with thesecond highest edge measure is the secondary edge. In one embodiment ofthe present invention, the set of edges includes a vertical edge E_V, ahorizontal edge E_H, a 45 degree edge E_45, and a 135 degree edge E_135.Other embodiments of the present invention may use different edges inthe set of possible edges.

FIG. 7 is a block diagram of an embodiment of an edge detection unit 700in accordance with one embodiment of the present invention. Edgedetection unit 700 includes an edge measure calculation unit 710 and anedge sorter 720. Edge measure calculation unit 710 includes a horizontaledge measure calculation unit 712 for calculating a horizontal edgemeasure E_H_M, a vertical edge measure calculation unit 714 forcalculating a vertical edge measure E_V_M, a 45 degree edge measurecalculation unit 716 for calculating a 45 degree edge measure E_45_M,and a 135 degree edge measure calculation unit 718 for calculating a 135degree edge measure E_135_M. Edge detection unit 700 uses consolidatedpixel data C_P_D from smoothing filter 340 (FIG. 3) to calculate thevarious edge measures. Edge sorter 720 sorts the edges based on thevalue of horizontal edge measure E_H_M, vertical edge measure E_V_M, 45degree edge measure E_45_M, and 135 degree edge measure E_135_M. Theedge with the largest edge measure is the dominant edge. The edge withthe second largest edge measure is the secondary edge. Edge sorter 720provides dominant edge information D_E_I, which includes a dominant edgemeasure D_E_M (not shown), which is equal to the largest edge measureand a dominant edge direction D_E_D (not shown), which corresponds tothe direction of the edge with the largest edge measure. Edge sorter 720also provides secondary edge information S_E_I, which includes asecondary edge measure S_E_M (not shown), which is equal to the secondlargest edge measure and a secondary edge direction S_E_D (not shown),which corresponds to the direction of the edge with the second largestedge measure. Some embodiments of the present invention do not make useof secondary edge information S_E_I. In these embodiments edge sorter720 would not need to determine the secondary edge or secondary edgeinformation S_E_I.

For the embodiment of FIG. 7, slopes within smoothing filter 340 areused as the edge measures. Slope and edge direction are actually offsetby 90 degrees. Thus, horizontal edge measure E_H_M is a measure of thevertical slope of the consolidated pixels in smoothing filter 340.Specifically, equations EQ17, EQ18, EQ19, and EQ20 provides the formulasfor calculating horizontal edge measure E_H_M, vertical edge measureE_V_M, 45 degree edge measure E_45_M, and 135 degree edge measureE_135_M, respectively. $\begin{matrix}{{{E\_ H}{\_ M}} = \begin{matrix}{\begin{matrix}{\left( {{C\_ P0} + {C\_ P1} + {C\_ P2} + {C\_ P3} + {C\_ P4} + {C\_ P5}} \right) -} \\{2*\left( {{C\_ P6} + {C\_ P7} + {C\_ P8}} \right)}\end{matrix}} \\{\begin{matrix}{\left( {{C\_ P6} + {C\_ P7} + {C\_ P8} + {C\_ P3} + {C\_ P4} + {C\_ P5}} \right) -} \\{2*\left( {{C\_ P0} + {C\_ P1} + {C\_ P2}} \right)}\end{matrix}}\end{matrix}} & \left( {{EQ}\quad 17} \right) \\{{{E\_ V}{\_ M}} = \begin{matrix}{\begin{matrix}{\left( {{C\_ P0} + {C\_ P3} + {C\_ P6} + {C\_ P1} + {C\_ P4} + {C\_ P7}} \right) -} \\{2*\left( {{C\_ P2} + {C\_ P5} + {C\_ P8}} \right)}\end{matrix}} \\{\begin{matrix}{\left( {{C\_ P2} + {C\_ P5} + {C\_ P8} + {C\_ P1} + {C\_ P4} + {C\_ P7}} \right) -} \\{2*\left( {{C\_ P0} + {C\_ P3} + {C\_ P6}} \right)}\end{matrix}}\end{matrix}} & \left( {{EQ}\quad 18} \right) \\{{{E\_}45{\_ M}} = \begin{matrix}{\begin{matrix}{\left( {{C\_ P2} + {C\_ P4} + {C\_ P6} + {C\_ P0} + {C\_ P1} + {C\_ P3}} \right) -} \\{2*\left( {{C\_ P5} + {C\_ P7} + {C\_ P8}} \right)}\end{matrix}} \\{\begin{matrix}{\left( {{C\_ P2} + {C\_ P4} + {C\_ P6} + {C\_ P5} + {C\_ P7} + {C\_ P8}} \right) -} \\{2*\left( {{C\_ P0} + {C\_ P1} + {C\_ P3}} \right)}\end{matrix}}\end{matrix}} & \left( {{EQ}\quad 19} \right) \\{{{E\_}135{\_ M}} = \begin{matrix}{\begin{matrix}{\left( {{C\_ P0} + {C\_ P4} + {C\_ P8} + {C\_ P1} + {C\_ P2} + {C\_ P5}} \right) -} \\{2*\left( {{C\_ P3} + {C\_ P6} + {C\_ P7}} \right)}\end{matrix}} \\{\begin{matrix}{\left( {{C\_ P0} + {C\_ P4} + {C\_ P8} + {C\_ P3} + {C\_ P6} + {C\_ P7}} \right) -} \\{2*\left( {{C\_ P1} + {C\_ P2} + {C\_ P5}} \right)}\end{matrix}}\end{matrix}} & \left( {{EQ}\quad 20} \right)\end{matrix}$

FIG. 8 is a block diagram of a horizontal edge measure calculation unit712, which includes a 6-input adder 810, a 3-input adder 815, a doubler820, a subtractor 825, an absolute value circuit 830, a 6-input adder840, a 3-input adder 845, a doubler 850, a subtractor 855, an absolutevalue circuit 860, and a 2-input adder 880. 6-input adder 810 has sixinput ports I0, I1, I2, I3, I4, and I5, which receive consolidatedpixels C_P0, C_P1, C_P2, C_P3, C_P4, C_P5, respectively. 6-input adder810 adds the values from input ports I0-I5 and generates an output sumat output port O, which is coupled to a positive input port I_P ofsubtractor 825. 3-input adder 815 has three input ports I0, I1, and I2,which receive consolidated pixels C_P6, C_P7, and C_P8, respectively.3-input adder 815 adds the values from input ports I0, I1, and I2 andgenerates an output sum at output port O, which is coupled to an inputport IN of doubler 820. Doubler 820 doubles the value at input port INand outputs the result on output port O, which is coupled a negativeinput port I_N of subtractor 825. Doubler 820 could be for example ashift register configured to shift the input value by one bit to theleft. Subtractor 825 generates a difference at output port O equal tothe value at positive input port I_P minus the value at negative inputport I_N. Output port O of subtractor 825 is coupled to an input port ofabsolute value circuit 830, which provides the absolute value of theinput value to an input port I0 of 2-input adder 880.

6-input adder 840 has six input ports I0, I1, I2, I3, I4, and I5, whichreceive consolidated pixels C_P6, C_P7, C_P8, C_P3, C_P4, C_P5,respectively. 6-input adder 840 adds the values from input ports I0-I5and generates an output sum at output port O, which is coupled to apositive input port I_P of subtractor 855. 3-input adder 845 has threeinput ports I0, I1, and I2, which receive consolidated pixels C_P0,C_P1, and C_P2, respectively. 3-input adder 845 adds the values frominput ports I0, I1, and I2 and generates an output sum at output port O,which is coupled to an input port IN of doubler 850. Doubler 850 doublesthe value at input port IN and outputs the result on output port O,which is coupled a negative input port I_N of subtractor 855. Doubler850 could be for example a shift register configured to shift the inputvalue by one bit to the left. Subtractor 855 generates a difference atoutput port O equal to the value at positive input port I_P minus thevalue at negative input port I_N. Output port O of subtractor 855 iscoupled to an input port of absolute value circuit 860, which providesthe absolute value of the input value to an input port I1 of 2-inputadder 880. 2-input adder 880 adds the values from input port I0 andinput port I1 to generate an horizontal edge measure E_H_M on outputport O. Vertical edge measure calculation unit 714, 45 degree edgemeasure calculation unit 716, and 135 degree edge measure calculationunit 718 can use the same circuitry as illustrated in FIG. 8. However,the appropriate consolidated pixel values would need to be supplied tothe input ports of the adders. One skilled in the art can easily makethese modifications by referring to equations EQ17, EQ18, EQ19, andEQ20.

FIG. 9(a) is a block diagram of one embodiment of Edge thresholdchecking unit 360 (FIG. 3). The embodiment of FIG. 9 includes an edgedominance threshold checking unit 910, an edge end pixel selection unit920, an edge end pixel selection unit 930, an edge selection unit 940,and a minimum edge threshold checking unit 950. Edge dominance thresholdchecking unit determines whether the dominant edge is significantlygreater than the secondary edge. Specifically, edge dominance thresholdchecking unit 910 compares the absolute value of the difference betweendominant edge measure D_E_M and secondary edge measure S_E_M against anedge dominance threshold E_D_T. When the absolute value of thedifference between dominant edge measure D_E_M and secondary edgemeasure S_E_M is less than or equal to edge dominance threshold E_D_T,edge dominant threshold checking unit 910 drives a dominance signal DOMto a not dominant logic state (typically logic low), which signifiesthat the dominant edge found by edge detection unit 350 does notsignificantly stronger than the secondary edge. Thus, further processingshould be performed to determine whether the dominant edge or thesecondary edge should be selected. When the absolute value of thedifference between dominant edge measure D_E_M and secondary edgemeasure S_E_M is greater than edge dominance threshold E_D_T, edgedominance threshold checking unit 910 drives dominance signal DOM to adominant logic state (typically logic high), which signifies that thedominant edge is significantly stronger than the secondary edge.Dominance signal DOM is provided to edge selection unit 940, which isdescribed below.

Edge end pixel selection units 920 and 930 select the consolidatedpixels in smoothing filter 340 that are at the end of an edge in a givenedge direction. As illustrated in FIG. 9(a), edge end pixel selectionunit 920 is coupled to receive the dominant edge direction and selects afirst dominant edge end pixel FDEEP and a second dominant edge end pixelSDEEP. Edge end pixel selection unit 930 is coupled to receive thesecondary edge direction and selects a first secondary edge end pixelFSEEP and a second secondary edge end pixel SSEEP. Table 1 shows whichtwo consolidated pixels selected for each edge direction. The order ofthe selected pixels (i.e. which pixel is the first versus the second) isnot material in the embodiment of FIG. 9(a). TABLE 1 EDGE DIRECTIONSELECTED CONSOLIDATED PIXELS HORIZONTAL C_P3 and C_P5 VERTICAL C_P1 andC_P7  45 DEGREE C_P2 and C_P6 135 DEGREE C_P0 and C_P8

Edge selection unit 940 selects between the dominant edge and thesecondary edge to determine the first edge end pixel and the second edgeend pixel. Edge selection unit 940 receives dominance signal DOM fromedge dominance threshold checking unit 910, first dominant edge endpixel FDEEP and second dominant edge end pixel SDEEP from edge end pixelselection unit 920, consolidated pixel data from smoothing filter 340(FIG. 3), and first secondary edge end pixel FSEEP and second secondaryedge end pixel SSEEP from edge end pixel selection unit 930. Whendominance signal DOM is in the dominant logic state, edge selection unit940 selects the dominant edge; therefore, first edge end pixel FEEP isequal to first dominant edge end pixel FDEEP and second edge end pixelSEEP is equal to second dominant edge end pixel SDEEP. When dominancesignal DOM is in the not dominant logic state, edge selection unit 940computes a dominant edge characteristic DEC that is equal to the sum ofthe absolute value of consolidated pixel C_P4 minus first dominant edgeend pixel FDEEP and the absolute value of consolidated pixel C_P4 minusthe second dominant edge end pixel SDEEP. Equation EQ21 showssymbolically how to calculate dominant edge characteristic DEC.DEC=|C _(—) P 4−FDEEP|+|C _(—) P 4−SDEEP|  (EQ21)

Edge selection unit 940 also computes a secondary edge characteristicSEC that is equal to the sum of the absolute value of consolidated pixelC_P4 minus first secondary edge end pixel FSEEP and the absolute valueof consolidated pixel C_P4 minus the second secondary edge end pixelSSEEP. Equation EQ22 shows symbolically how to calculate secondary edgecharacteristic SEC.SEC=|C _(—) P 4−FSEEP|+|C _(—) P 4−SSEEP|  (EQ22)

When dominance signal DOM is in the not dominant logic state anddominant edge characteristic DEC is greater than or equal to secondaryedge characteristic SEC, edge selection unit 940 selects the dominantedge; therefore, first edge end pixel is equal to first dominant edgeend pixel and second edge end pixel is equal to the second dominant edgeend pixel. However, when dominance signal DOM is in the not dominantlogic state and dominant edge characteristic DEC is less than secondaryedge characteristic SEC, edge selection unit 940 selects the secondaryedge; therefore, first edge end pixel FEEP is equal to first secondaryedge end pixel FSEEP and second edge end pixel SEEP is equal to thesecond secondary edge end pixel SSEEP.

Minimum edge threshold checking unit 950 generates the edge thresholdcontrol signal based on the values of first edge end pixel FEEP, secondedge end pixel SEEP, a minimum edge threshold M_E_T, and consolidatedpixel C_P4. Specifically, the absolute value of consolidated pixel C_P4minus first edge end pixel FEEP is greater than minimum edge thresholdM_E_T or the absolute value of consolidated pixel C_P4 minus second edgeend pixel SEEP is greater than minimum edge threshold M_E_T, edgethreshold control signal E_T_C is driven to a threshold met logic state(typically logic high), which indicates that current pixel P(i,j) shouldbe smoothed subject to other conditions described below. Otherwise, edgethreshold control signal E_T_C is driven to a threshold failed logicstate (typically logic low), which indicates that the current pixelP(i,j) should not be smoothed.

FIG. 9(b) is a block diagram of one embodiment of edge dominancethreshold checking unit 910, which includes a subtractor 912, anabsolute value circuit 914, and a comparator 916. Subtractor 912receives dominant edge measure D_E_M on a positive input port I_P andreceives secondary edge measure S_E_M on a negative input port I_N.Subtractor 912 generates a difference at output port O equal to thevalue at positive input port I_P minus the value at negative input portI_N. Output port O of subtractor 912 is coupled to an input port ofabsolute value circuit 914, which provides the absolute value of theinput value to comparator 916, which also receives edge dominancethreshold E_D_T. When the value from absolute value circuit 914 is lessthan or equal to edge dominance threshold E_D_T, comparator 916 drives adominance signal DOM to a not dominant logic state (typically logiclow). When the value from absolute value circuit 914 is greater thanedge dominance threshold E_D_T, comparator 916 drives dominance signalDOM to a dominant logic state (typically logic high).

FIG. 9(c) is a block diagram of an embodiment of edge-end pixelselection unit 920. The embodiment of FIG. 9(c) includes a multiplexer922 and a multiplexer 924. Multiplexer 922 has an output port, whichgenerates first dominant edge end pixel FDEEP, and four input ports 00,01, 10, and 11, which receives consolidated pixels C_P3, C_P1, C_P2, andC_P0, respectively. Similarly multiplexer 924 has an output port, whichgenerates second dominant edge end pixel SDEEP, and 4 input ports 00,01, 10, and 11, which receive consolidated pixels C_P5, C_P7, C_P6, andC_P8, respectively. Both multiplexer 922 and 924 are controlled bydominant edge direction D_E_D, which is encoded as two bits xy, withxy=00 being the horizontal direction, xy=01 being the verticaldirection, xy=10 being the 45 degree direction, and xy=11 being the 135degree direction. Multiplexer 922 and 924 are controlled by dominantedge direction D_E_D, so edge-end pixel selection unit 920 selects theconsolidated pixels as shown in Table 1. Similarly edge end pixelselection unit 930 could be implemented with the circuit of FIG. 9(c) byapplying the appropriate signals to the multiplexers.

FIG. 9(d) is a block diagram of an embodiment of edge selection unit940. The embodiment of FIG. 9(d) includes an edge characteristiccalculation unit 942, an edge characteristic calculation unit 944, acomparator 945, an OR gate 946, a multiplexer 947, and a multiplexer948. Edge characteristic calculation unit 942, which receives firstdominant edge end pixel FDEEP, second dominant edge end pixel SDEEP, andconsolidated pixel C_P4, calculates dominant edge characteristic DEC,which is equal to the sum of the absolute value of consolidated pixelC_P4 minus first dominant edge end pixel FDEEP and the absolute value ofconsolidated pixel C_P4 minus the second dominant edge end pixel SDEEP(See equation EQ21 above). Edge characteristic calculation unit 944,which receives first secondary edge end pixel FSEEP, second secondaryedge end pixel SSEEP, and consolidated pixel C_P4, calculates secondaryedge characteristic SEC, which is equal to the sum of the absolute valueof consolidated pixel C_P4 minus first secondary edge end pixel FSEEPand the absolute value of consolidated pixel C_P4 minus the secondsecondary edge end pixel SSEEP (See Equation EQ22). Comparator 945receives dominant edge characteristic DEC and secondary edgecharacteristic SEC. When dominant edge characteristic DEC is greaterthan or equal to secondary edge characteristic SEC, comparator 945drives a logic high to a first input terminal of OR gate 946; otherwise,comparator 945 drives a logic low to the first input terminal of OR gate946. The second input terminal of OR gate 946 receives dominance signalDOM. The output terminal of OR gate 946 is coupled to the controlterminals of multiplexer 947 and multiplexer 948. Multiplexer 947, whichreceives first dominant edge end pixel FDEEP on a logic 1 input port andfirst secondary edge end pixel FSEEP on a logic 0 input port providesfirst edge end pixel FEEP. Multiplexer 948, which receives seconddominant edge end pixel SDEEP on a logic 1 input port and secondsecondary edge end pixel SSEEP on a logic 0 input port provides secondedge end pixel SEEP.

FIG. 9(e) is a block diagram of one embodiment of edge characteristiccalculation unit 942. The embodiment of FIG. 9(e) includes a subtractor962, an absolute value circuit 963, a subtractor 964, an absolute valuecircuit 965, and an adder 966. Subtractor 962 receives consolidatedpixel C_P4 on a positive input port I_P and receives first dominant edgeend pixel FDEEP on a negative input port I_N. Subtractor 962 generates adifference at output port O equal to the value at positive input portI_P minus the value at negative input port I_N. Output port O ofsubtractor 962 is coupled to an input port of absolute value circuit963, which provides the absolute value of the input value to adder 966.Subtractor 964 receives consolidated pixel C_P4 on a positive input portI_P and receives second dominant edge end pixel SDEEP on a negativeinput port I_N. Subtractor 964 generates a difference at output port Oequal to the value at positive input port I_P minus the value atnegative input port I_N. Output port O of subtractor 964 is coupled toan input port of absolute value circuit 965, which provides the absolutevalue of the input value to adder 966. Adder 966 adds the values fromabsolute value circuit 963 and absolute value circuit 965 to generatedominant edge characteristic DEC. The circuit of FIG. 9(e) can also beused for edge characteristic calculation unit 944.

FIG. 9(f) is a block diagram of one embodiment of minimum edge thresholdchecking unit 950. The embodiment of FIG. 9(f) includes a subtractor952, an absolute value circuit 953, a comparator 954, a subtractor 955,an absolute value circuit 956, a comparator 957, and an OR gate 958.Subtractor 952 receives consolidated pixel C_P4 on a positive input portI_P and receives first edge end pixel FEEP on a negative input port I_N.Subtractor 952 generates a difference at output port O equal to thevalue at positive input port I_P minus the value at negative input portI_N. Output port O of subtractor 952 is coupled to an input port ofabsolute value circuit 953, which provides the absolute value of theinput value to comparator 954. Comparator 954, which also receivesminimum edge threshold M_E_T, outputs a logic high to a first inputterminal of OR gate 958 when the value from absolute value circuit 953is greater than minimum edge threshold M_E_T; otherwise comparator 954generates a logic low to the first input terminal of OR gate 958.Subtractor 955 receives consolidated pixel C_P4 on a positive input portI_P and receives second edge end pixel SEEP on a negative input portI_N. Subtractor 955 generates a difference at output port O equal to thevalue at positive input port I_P minus the value at negative input portI_N. Output port O of subtractor 955 is coupled to an input port ofabsolute value circuit 956, which provides the absolute value of theinput value to comparator 957. Comparator 957, which also receivesminimum edge threshold M_E_T, outputs a logic high to a second inputterminal of OR gate 958 when the value from absolute value circuit 956is greater than minimum edge threshold M_E_T; otherwise comparator 957generates a logic low to the second input terminal of OR gate 958. ORgate 958 provides edge threshold control signal E_T_C.

Smoothed pixel calculation unit 370 (FIG. 3) calculates smoothed pixelSP(i,j) based on first edge end pixel FEEP, second edge end pixel SEEPand consolidated pixel C_P4. Specifically, smoother pixel SP(i,j) isequal to a normalized linear combination of consolidated pixel C_P4,first edge end pixel FEEP and second edge end pixel SEEP. Consolidatedpixel C_P4, first edge end pixel FEEP and second edge end pixel SEEP canbe assigned different weighting factors. FIG. 10 shows a block diagramof one embodiment of smoothed pixel calculation unit. The embodiment ofFIG. 10 includes multipliers 1010, 1020 and 1030, 3-input adders 1040and 1050, and a divider 1060. Multiplier 1010 calculates the product ofconsolidated pixel C_P4 and a weighting factor W1. Multiplier 1020calculates the product of first edge end pixel FEEP with a weightingfactor W2. Multiplier 1030 calculates a product of second edge end pixelSEEP and a weighting factor W3. 3-input adder 1040 has three input portsI0, I1, and I2, which receive the products from multipliers 1010, 1020,and 1030 respectively. 3-input adder 1040 adds the values from inputports I0, I1, and I2 and generates an output sum at output port O, whichis coupled to a numerator input port I_N of divider 1060. Three inputadder 1050 has three input ports I0, I1, and I2, which receive weightingfactors W3, W2, and W1, respectively. 3-input adder 1050 adds the valuesfrom input ports I0, I1, and I2 and generates an output sum at outputport O, which is coupled to a denominator input port I_D of divider1060. Divider 1060 divides the value at numerator input port I_N by thevalue at denominator input port I_D to generate a quotient that is equalto smoothed pixel SP(i,j) at quotient output port O_Q. In someembodiment of the present invention the same weighting factor isassigned to consolidated pixel C_P4, first edge end pixel FEEP andsecond edge end pixel SEEP, so that the normalized linear combinationreduces to the averaging operation, i.e., smoothed pixel SP(i,j) isequal to the sum of consolidated pixel C_P4, first edge end pixel FEEPand second edge end pixel SEEP divided by three (i.e.,SP(i,j)=(C_P4+FEEP+SEEP)/3). In these embodiments multipliers 1010,1020, and 1030 as well as 3-input adder 1050 would not be necessary.Consolidated pixel C_P4, first edge end pixel FEEP and second edge endpixel SEEP could be applied directly to input ports I0, I1, and I2,respectively, of 3-input adder 1040 and the number three could beapplied to denominator input port I_D of divider 1060.

Subtle structure checking unit 380 receives smoothed pixel SP(i,j) anddetermines whether the smoothed pixel SP(i,j) would smooth out subtlefeatures of the frame and therefore should not be used to replacecurrent pixel P(i,j). Subtle structure checking unit generates a subtlestructure control signal SS that is used by output pixel selection unit390 to choose between the current pixel P(i,j) and smoothed pixelSP(i,j). In one embodiment of the present invention, if smoothed pixelSP(i,j) is greater than the maximum value of the pixels diagonallyadjacent to the current pixel, i.e. pixels P(i−1,j−1), P(i−1,j+1),P(i+1,j−1) and P(i+1,j+1) or if smoothed pixel SP(i,j) is less than theminimum value of pixels P(i−1,j−1), P(i−1,j+1), P(i+1,j−1) andP(i+1,j+1) (i.e. the diagonally adjacent pixels) or smoothed pixelSP(i,j) is greater than the maximum value of the pixels directlyadjacent to the current pixel, i.e. P(i−1,j), P(i,j−1), P(i,j+1), andP(i+1,j) or smoothed pixel SP(i,j) is less than the minimum value ofpixels P(i−1,j), P(i,j−1), P(i,j+1), and P(i+1,j) (i.e. the directlyadjacent pixels) then current pixel P(i,j) should not be smoothed andsubtle structure control signal SS is driven to a subtle logic state(typically logic low). Otherwise subtle structure control signal SS isdriven to a not subtle logic state (typically logic high), whichindicates that smoothed pixel SP(i,j) should be used.

FIG. 12(a) is a block of a subtle structure checking unit 1200 a inaccordance with another embodiment of the present invention. Theembodiment of FIG. 12(a), which includes comparators 1210-1217, subtlestructure checksum register 1220, and subtle structure look-up table1230, compares smoothed pixel SP(i,j) with a set of subtle structurepixels to determine whether to use pixel P(i,j) or smoothed pixelSP(i,j). In the embodiment of FIG. 12(a), the set of subtle structurepixels include the pixels surrounding current pixel P(i,j).Specifically, the pixel pattern of the subtle structure pixels whichhave a luminance value less than smoothed pixel SP(i,j) are compared toa predefined set of pixel patterns. If the pixel pattern of the subtlestructure pixels, which have a luminance value less than smoothed pixelSP(i,j) matches a predefined pixel pattern, smoothed pixel SP(i,j) isselected, i.e. subtle structure control signal SS is driven to a notsubtle logic state. Otherwise, pixel P(i,j) is selected, i.e. subtlestructure control signal SS is driven to a subtle logic state. Ingeneral, the members of the predefined set of pixel patterns resembleedges.

Comparators 1210-1217 each have a first input port IP0, a second inputport IP1 and an output port OP. Smoothed pixel SP(i,j) is applied to thefirst input port of IP0 of each comparator. Pixels P(i+1,j+1), P(i+1,j),P(i+1,j−1), P(i,j+1), P(i,j−1), P(i−1,j+1), P(i−1,j), and P(i−1,j−1) areapplied to the second input port of comparators 1210, 1211, 1212, 1213,1214, 1215, 1216 and 1217, respectively. The output port of comparators1210, 1211, 1212, 1213, 1214, 1215, 1216, and 1217 are coupled to subtlestructure checksum bits SSCS0, SSCS1, SSCS2, SSCS3, SSCS4, SSCS5, SSCS6and SSCS7, respectively, of subtle structure checksum register 1220.Comparators 1210-1217 are configured to output a logic 1 when the valueat first input port IP0 is greater than the value at second input portIP1 and to output a logic 0 otherwise. The subtle structure checksumbits forms an 8-bit number (i.e. the subtle structure checksum SSCS) insubtle structure checksum register 1220, with subtle structure checksumbit SSCS0 being the least significant bit and subtle structure checksumbit SSCS7 being the most significant bit. In general, if subtlestructure checksum is a member of a predefined set of check sum valuesthen smoothed pixel SP(i,j) is selected; otherwise, pixel P(i,j) isselected. Each member of the predefined set of checksum valuescorrespond to a member of the predefined set of pixel patterns.

Specifically, subtle structure checksum SSCS is used as an index tosubtle structure look-up table 1230, which has 256 entries. The entriesin subtle structure look-up table 1230 are binary values. For values ofsubtle structure checksum SSCS that are members of the predefined set ofchecksum values (i.e. corresponds to a member of the predefined set ofpixel patterns), the binary value in subtle structure look-up table 1230is equal to the not subtle logic state. For other values, the binaryvalue in subtle structure look-up table 1230 is equal to the subtlelogic state. The output of subtle structure look-up table 1230 providessubtle structure control signal SS.

In one embodiment of the present invention the predefined set ofchecksum values includes 7, 11, 15, 22, 23, 31, 47, 104, 151, 208, 224,232, 233, 240, 244, and 248. FIGS. 13(a)-13(p) shows the pixel patternsthat correspond to subtle structure checksum SSCS of 7, 11, 15, 22, 23,31, 47, 104, 151, 208, 224, 232, 233, 240, 244, and 248 respectively.FIGS. 13(a)-13(p) show the set of eight subtle structure pixelssurrounding pixel P(i,j), shaded pixels are pixels that are less thansmoothed pixel SP(i,j). As shown in FIG. 13(a), a subtle structurechecksum of 7 corresponds to a pixel pattern in which bottom pixels areless than smoothed pixel SP(i,j). As shown in FIG. 13(b), a subtlestructure checksum of 11 corresponds to a pixel pattern in which thethree pixels of the bottom right corner are less than smoothed pixelSP(i,j). As shown in FIG. 13(c), a subtle structure checksum of 15corresponds to a pixel pattern in which the three pixels of the bottomright corner and the bottom left pixel are less than smoothed pixelSP(i,j). As shown in FIG. 13(d), a subtle structure checksum of 22corresponds to a pixel pattern in which the three pixels of the bottomleft corner are less than smoothed pixel SP(i,j).

As shown in FIG. 13(e), a subtle structure checksum of 23 corresponds toa pixel pattern in which the three pixels of the bottom left corner andthe bottom right pixel are less than smoothed pixel SP(i,j). As shown inFIG. 13(f), a subtle structure checksum of 31 corresponds to a pixelpattern in which the three bottom pixels, the left pixel and the rightpixel are less than smoothed pixel SP(i,j). As shown in FIG. 13(g), asubtle structure checksum of 47 corresponds to a pixel pattern in whichthe bottom row and right column pixels are less than smoothed pixelSP(i,j). As shown in FIG. 13(h), a subtle structure checksum of 104corresponds to a pixel pattern in which the three pixels of the topright corner are less than smoothed pixel SP(i,j).

As shown in FIG. 13(i), a subtle structure checksum of 151 correspondsto a pixel pattern in which the left column and bottom row pixels areless than smoothed pixel SP(i,j). As shown in FIG. 13(j), a subtlestructure checksum of 208 corresponds to a pixel pattern in which thethree pixels of the top left corner are less than smoothed pixelSP(i,j). As shown in FIG. 13(k), a subtle structure checksum of 224corresponds to a pixel pattern in which the three pixels of the top roware less than smoothed pixel SP(i,j). As shown in FIG. 13(l), a subtlestructure checksum of 232 corresponds to a pixel pattern in which thethree pixels of the top right corner and the top left pixel are lessthan smoothed pixel SP(i,j).

As shown in FIG. 13(m), a subtle structure checksum of 233 correspondsto a pixel pattern in which the pixels of the top row and right columnare less than smoothed pixel SP(i,j). As shown in FIG. 13(n), a subtlestructure checksum of 240 corresponds to a pixel pattern in which thethree pixels of the top left corner and the top right pixel are lessthan smoothed pixel SP(i,j). As shown in FIG. 13(o), a subtle structurechecksum of 244 corresponds to a pixel pattern in which the pixels ofthe top row and left column are less than smoothed pixel SP(i,j). Asshown in FIG. 13(p), a subtle structure checksum of 248 corresponds to apixel pattern in which the pixels of the top row, the left pixel, andthe right pixel are less than smoothed pixel SP(i,j). Other embodimentsof the present invention may not use all of the pixel patterns shown inFIGS. 13(a)-13(p). In addition some embodiments of the present inventionmay use other pixel patterns in place of or in addition to the pixelpatterns shown in FIG. 13(a)-13(p). Furthermore, some embodiments of thepresent invention could use different predetermined patterns anddifferent sets of subtle pixels that may be larger or smaller than theeight pixels used in the embodiment of FIG. 12(a).

Subtle structure checking unit 1200 a is a specific embodiment of a moregeneral structure characterization unit 1200 b (illustrated in FIG.12(b)). Specifically, subtle structure checking unit 1200 a is tailoredfor use with image smoother 300. However, the principles of structurecharacterization unit 1200 b (FIG. 12(b)) can be used to characterizestructures for any type of image processing; although usually structurecharacterization is used when a processed pixel (such as smoothed pixelSP(i,j)) is generated to possibly replace a current pixel. Structurechecking unit 1200 b includes a pixel comparison unit 1240, a structurechecksum register 1250, and a structure look-up table 1260. Pixelcomparison unit 1240, which receives a processed pixel PP(i,j), pixeldata P_DATA for a group of pixels near the current pixel, and comparisonparameters C_PARAM, generates structure checksum bit groups SCSBG_0,SCSBG_1, . . . SCSBG_N, which are stored in structure checksum register1250. Structure checksum bit groups SCSBG_0, SCSBG_1, . . . , SCSBG_Nform structured checksum SCS, which is used to index structure look-uptable 1260. Structure look-up table 1260 outputs a structurecharacteristic S_CHAR, which describes the structure of the pixels. Inmany embodiments of the present invention structure checksum register1250 is incorporated within pixel comparison unit 1240. In someembodiments of the present invention, structure checksum register 1250is omitted.

The specific implementation of pixel comparison unit 1240 variesdepending on the type of image processing being performed. For examplein subtle structure checking unit 1200 a (FIG. 12(a)), pixel comparisonunit compares smoothed pixel SP(i,j), which is equivalent to theprocessed pixel, with pixel data P_DATA of each pixel surrounding thecurrent pixel to generate a single bit (i.e. the structured checksum bitgroups are of size 1 bit). Furthermore, no comparison parameters areused. However other embodiments of the pixel comparison unit 1240 mayperform more elaborate comparisons. For example, in one embodiment ofthe present invention, pixel comparison unit 1240 generates structurechecksum bit group SCSBG_X to indicate whether the processed pixel isgreater than a pixel P_X by a threshold provided in comparisonparameters C_PARAM. In another embodiment of the present invention,pixel comparison unit 1240 generates a 2-bit checksum bit group SCSBG_Xto indicate whether processed pixel PP(i,j) is less than (i.e.SCSBG_X=00), greater than (i.e., SCSBG_X=11), or within (i.e.,SCSBG_X=10) a range defined by pixel P_X and pixel P_X+1.

Structure checksum register 1250 is used to store the structure checksumbit groups and to provide structure checksum SCS as the index tostructure look-up table 1260. Structure look-up table 1260 containsstructure characteristics corresponding to the possible values ofstructure checksum SCS. The specific structure characteristics dependson the image processing being performed. For example, for subtlestructure checking unit 1200 a, the structure characteristic is a singlebit indicating whether subtle structures were detected for thecorresponding index values. Other embodiments may encode moreinformation in a multi-bit structure characteristic. For example, in oneembodiment of the present invention, the structure characteristicsstored in structure look-up table 1260 correspond to edge directions ofa dominant edge. Specifically, horizontal edge direction is encoded as atwo bit value 00, vertical edge direction is encoded as a two bit value01, 45 degree edge direction is encoded as a two bit value 10, and 135degree edge direction is encoded as a two bit value 11.

Output pixel selection unit 390 selects either current pixel P(i,j) orsmoothed pixel SP(i,j) as an output pixel OP(i,j). Specifically, ifstill pixel control signal STILL_P is at logic low, which indicates thatthe current pixel is a moving pixel, edge threshold control signal E_T_Cis at a threshold met logic state (typically logic high), and subtlestructure control signal SS is at a not subtle logic state (typicallylogic high), then output pixel OP(i,j) is set equal to smoothed pixelSP(i,j). Otherwise, output pixel OP(i,j) is set equal to current pixelP(i,j). FIG. 11 is a block diagram of one embodiment of output pixelselection unit 390. The embodiment of FIG. 11 includes an inverter 1110,a three input AND gate 1120, and a multiplexing circuit 1130. Stillpixel control signal STILL_P is coupled to the input port of inverter1110, which has an output port coupled to a first input terminal of3-input AND gate 1120. Edge threshold control signal E_T_C and subtlestructure control signal SS are coupled to the second and third inputterminals of 3-input AND gate 1120. The output terminal of 3-input ANDgate 1120 is couple to a control terminal C of multiplexing circuit1130. Smoothed pixel SP(i,j) is applied to logic high input port I_1 ofmultiplexing circuit 1130 and current pixel P(i,j) is applied to logiclow input port I_0 of multiplexing circuit 1130. Output port O ofmultiplexing circuit 1130 provides output pixel OP(i,j).

In the various embodiments of the present invention, novel structureshave been described for smoothing a frame to remove jagged edges. Thevarious embodiments of the structures and methods of this invention thatare described above are illustrative only of the principles of thisinvention and are not intended to limit the scope of the invention tothe particular embodiments described. For example, in view of thisdisclosure those skilled in the art can define other smoothing filters,pixel consolidation units, consolidation sizes, still pixel detectionunits, edge detection units, smoothed pixel calculation units, subtlestructure checking units, pixel patterns, edge threshold checking units,output pixel selection units, and use these alternative features tocreate a method, circuit, or system according to the principles of thisinvention. Thus, the invention is limited only by the following claims.

1. A method of smoothing edges at a current pixel of a frame, the methodcomprising: generating a smoothing filter having a plurality ofconsolidated pixels; calculating a smoothed pixel based on values in thesmoothing filter.
 2. The method of claim 1, wherein the calculating asmooth pixel based on values in the smoothing filter further comprisesselecting a selected edge direction in the smoothing filter.
 3. Themethod of claim 2, wherein the selecting a selected edge direction inthe smoothing filter further comprises: determining a dominant edgehaving a dominant edge measure; and determining a secondary edge havinga secondary edge measure.
 4. The method of claim 3, wherein theselecting a selected edge direction in the smoothing filter furthercomprises: calculating an edge measure for each edge of a plurality ofedges in the smoothing filter; and sorting the plurality of edges basedon the edge measures.
 5. The method of claim 3, wherein a direction ofthe dominant edge is selected as the selected edge direction when anabsolute value of a difference between the dominant edge measure and thesecondary edge measure is greater than an edge dominance threshold. 6.The method of claim 2, wherein the calculating a smoothed pixel based onvalues in the smoothing filter further comprises: calculating a firstedge end pixel; calculating a second edge end pixel; calculating thesmoothed pixel using the first edge end pixel, the second edge endpixel, and a center entry of the smoothing filter.
 7. The method ofclaim 6, wherein the smoothed pixel is equal to a normalized linearcombination of the first edge end pixel, the second edge end pixel, andthe center entry of the smoothing filter.
 8. The method of claim 6,further comprising generating an output pixel, wherein the output pixelis equal to the smoothed pixel when an absolute value of a differencebetween the center entry of the smoothing pixel and the first edge endpixel is greater than a minimum edge threshold; the output pixel isequal to the smoothed pixel when an absolute value of a differencebetween the center entry of the smoothing pixel and the second edge endpixel is greater than the minimum edge threshold; and the output pixelis equal to the current pixel when the absolute value of the differencebetween the center entry of the smoothing pixel and the first edge endpixel is less than or equal to the minimum edge threshold and theabsolute value of the difference between the center entry of thesmoothing pixel and the second edge end pixel is less than or equal tothe minimum edge threshold.
 9. The method of claim 6, wherein thesmoothed pixel is equal to an average of the first edge end pixel, thesecond edge end pixel, and the center entry of the smoothing filter. 10.The method of claim 1, wherein the calculating a smoothed pixel based onvalues in the smoothing filter further comprises: determining a dominantedge having a dominant edge measure; and determining secondary edgehaving a secondary edge measure. selecting a first dominant edge endpixel and a second dominant edge end pixel; and selecting a firstsecondary edge end pixel and a second secondary edge end pixel.
 11. Themethod of claim 10, wherein the calculating a smoothed pixel based onvalues in the smoothing filter further comprises: calculating a dominantedge characteristic using the first dominant edge end pixel, the centerentry of the smoothing filter and the second dominant edge end pixel;and calculating a secondary edge characteristic using the firstsecondary edge end pixel, the center entry of the smoothing filter andthe second secondary edge end pixel.
 12. The method of claim 11, whereinthe calculating a smoothed pixel based on values in the smoothing filterfurther comprises selecting the first dominant edge end pixel as a firstedge end pixel and the second dominant edge end pixel as a second edgeend pixel when an absolute value of a difference between the dominantedge measure and the secondary edge measure is greater than an edgedominance threshold.
 13. The method of claim 12, wherein the calculatinga smoothed pixel based on values in the smoothing filter furthercomprises selecting the first dominant edge end pixel as a first edgeend pixel and the second dominant edge end pixel as a second edge endpixel when an absolute value of a difference between the dominant edgemeasure and the secondary edge measure is less than or equal to the edgedominance threshold and the dominant edge characteristic is greater thanor equal to the secondary edge characteristic.
 14. The method of claim13, wherein the calculating a smoothed pixel based on values in thesmoothing filter further comprises selecting the first secondary edgeend pixel as a first edge end pixel and the second secondary edge endpixel as a second edge end pixel when an absolute value of a differencebetween the dominant edge measure and the secondary edge measure is lessthan or equal to the edge dominance threshold and the dominant edgecharacteristic is less than the secondary edge characteristic.
 15. Themethod of claim 12, wherein the smoothed pixel is equal to a normalizedlinear combination of the first edge end pixel, the second edge endpixel, and the center entry of the smoothing filter.
 16. The method ofclaim 15, further comprising generating an output pixel, wherein theoutput pixel is equal to the smoothed pixel when an absolute value of adifference between the center entry of the smoothing filter and thefirst edge end pixel is greater than a minimum edge threshold; theoutput pixel is equal to the smoothed pixel when an absolute value of adifference between the center entry of the smoothing filter and thesecond edge end pixel is greater than the minimum edge threshold; andthe output pixel is equal to the current pixel when the absolute valueof the difference between the center entry of the smoothing filter andthe first edge end pixel is less than or equal to the minimum edgethreshold and the absolute value of the difference between the centerentry of the smoothing filter and the second edge end pixel is less thanor equal to the minimum edge threshold.
 17. The method of claim 1,further comprising generating an output pixel.
 18. The method of claim17, further comprising determining whether the current pixel is a stillpixel; and wherein the output pixel is equal to the current pixel if thecurrent pixel is a still pixel and the output pixel is equal to thesmoothed pixel if the current pixel is not a still pixel.
 19. The methodof claim 17, further comprising detecting subtle structures around thecurrent pixel.
 20. The method of claim 19, wherein the output pixel isequal to the current pixel when subtle structures are detected and theoutput pixel is equal to the smoothed pixel when subtle structures arenot detected.
 21. The method of claim 19, wherein the detecting subtlestructures around the current pixel further comprises: generating asubtle structure checksum value; and comparing the subtle structurechecksum value with a predefined set of checksum values, wherein eachmember of the predefined set of checksum values correspond to a memberof a predefined set of pixel patterns.
 22. The method of claim 21,wherein the generating a subtle structure checksum value comprisesgenerating a plurality subtle structure checksum bits by comparing thesmoothed pixel with a plurality of subtle structure pixels around thecurrent pixel, wherein the subtle structure checksum bits form thesubtle structure checksum value.
 23. The method of claim 21, wherein thecomparing the subtle structure checksum value with a predefined set ofchecksum values further comprises using the subtle structure checksumvalue as an index to a lookup table.
 24. The method of claim 19, whereinsubtle structures are detected when the smoothed pixel is greater thanthe maximum value of a plurality of pixels diagonally adjacent to thecurrent pixel and when the smoothed pixel is less than the minimum valuethe plurality of pixels diagonally adjacent to the current pixel. 25.The method of claim 19, wherein subtle structures are detected when thesmoothed pixel is greater than the maximum value of a plurality ofpixels directly adjacent to the current pixel and when the smoothedpixel is less than the minimum value the plurality of pixels directlyadjacent to the current pixel.
 26. The method of claim 1, wherein thegenerating a smoothing filter having a plurality of consolidated pixelsfurther comprises normalizing a consolidation size number of pixels toform each consolidated pixel.
 27. The method of claim 1, wherein thegenerating a smoothing filter having a plurality of consolidated pixelsfurther comprises: generating a center entry of the smoothing filter bynormalizing a first consolidation range of pixels on a current linecontaining the current pixel, wherein the first consolidation range ofpixels is centered on the current pixel; generating a first right centerentry of the smoothing filter by normalizing a second consolidationrange of pixels on the current line, wherein the second consolidationrange is adjacent and to the right of the first consolidation range; andgenerating a first left center entry of the smoothing filter bynormalizing a third consolidation range of pixels on the current line,wherein the third consolidation range is adjacent and to the left of thefirst consolidation range.
 28. The method of claim 27, wherein the firstconsolidation range includes a first portion of a first pixel and afirst portion of a second pixel, the second consolidation range includesa second portion of the first pixel, and the third consolidation rangeincludes a second portion of the second pixel.
 29. The method of claim27, wherein the generating a smoothing filter having a plurality ofconsolidated pixels further comprises generating a second right centerentry of the smoothing filter by normalizing a fourth consolidationrange of pixels on the current line, wherein the fourth consolidationrange is adjacent and to the right of the second consolidation range.30. The method of claim 27, wherein the generating a smoothing filterhaving a plurality of consolidated pixels further comprises generatingan above center entry of the smoothing filter by normalizing a fourthconsolidation range of pixels on a previous line of the frame, whereinthe pixels of the fourth consolidation range are in a same position ofthe previous line as the pixels of the first consolidation range are inthe current line.
 31. The method of claim 30, wherein the generating asmoothing filter having a plurality of consolidated pixels furthercomprises: generating an above right entry of the smoothing filter bynormalizing a fifth consolidation range of pixel on the previous line,wherein the fifth consolidation range is adjacent and to the right ofthe fourth consolidation range; and generating an above left entry ofthe smoothing filter by normalizing a sixth consolidation range of pixelon the previous line, wherein the sixth consolidation range is adjacentand to the left of the fourth consolidation range.
 32. The method ofclaim 31, wherein the generating a smoothing filter having a pluralityof consolidated pixels further comprises: generating a below centerentry of the smoothing filter by normalizing a seventh consolidationrange of pixels on a next line of the frame, wherein the pixels of theseventh consolidation range are in a same position of the next line asthe pixels of the first consolidation range are in the current line.generating an below right entry of the smoothing filter by normalizingan eighth consolidation range of pixel on the next line, wherein theeighth consolidation range is adjacent and to the right of the seventhconsolidation range; and generating an below left entry of the smoothingfilter by normalizing a ninth consolidation range of pixel on the nextline, wherein the ninth consolidation range is adjacent and to the leftof the seventh consolidation range.
 33. A system of smoothing edges at acurrent pixel of a frame, the system comprising: means for generating asmoothing filter having a plurality of consolidated pixels; means forcalculating a smoothed pixel based on values in the smoothing filter.34. The system of claim 33, wherein the means for calculating a smoothedpixel based on values in the smoothing filter further comprises meansfor selecting a selected edge direction in the smoothing filter.
 35. Thesystem of claim 34, wherein the means for calculating a smoothed pixelbased on values in the smoothing filter further comprises: means forcalculating a first edge end pixel; means for calculating a second edgeend pixel; means for calculating the smoothed pixel using the first edgeend pixel, the second edge end pixel, and a center entry of thesmoothing filter.
 36. The system of claim 35, wherein the smoothed pixelis equal to a normalized linear combination of the first edge end pixel,the second edge end pixel, and the center entry of the smoothing filter.37. The system of claim 34, further comprising means for generating anoutput pixel, wherein the output pixel is equal to the smoothed pixelwhen an absolute value of a difference between the center entry of thesmoothing pixel and the first edge end pixel is greater than a minimumedge threshold; the output pixel is equal to the smoothed pixel when anabsolute value of a difference between the center entry of the smoothingpixel and the second edge end pixel is greater than the minimum edgethreshold; and the output pixel is equal to the current pixel when theabsolute value of the difference between the center entry of thesmoothing pixel and the first edge end pixel is less than or equal tothe minimum edge threshold and the absolute value of the differencebetween the center entry of the smoothing pixel and the second edge endpixel is less than or equal to the minimum edge threshold.
 38. Thesystem of claim 33, wherein the means for calculating a smoothed pixelbased on values in the smoothing filter further comprises: means fordetermining a dominant edge having a dominant edge measure; and meansfor determining secondary edge having a secondary edge measure. meansfor selecting a first dominant edge end pixel and a second dominant edgeend pixel; and means for selecting a first secondary edge end pixel anda second secondary edge end pixel.
 39. The system of claim 38, whereinthe means for calculating a smoothed pixel based on values in thesmoothing filter further comprises: means for calculating a dominantedge characteristic using the first dominant edge end pixel, the centerentry of the smoothing filter and the second dominant edge end pixel;and means for calculating a secondary edge characteristic using thefirst secondary edge end pixel, the center entry of the smoothing filterand the second secondary edge end pixel.
 40. The system of claim 39,wherein the means for calculating a smoothed pixel based on values inthe smoothing filter further comprises means for selecting the firstdominant edge end pixel as a first edge end pixel and the seconddominant edge end pixel as a second edge end pixel when an absolutevalue of a difference between the dominant edge measure and thesecondary edge measure is greater than an edge dominance threshold. 41.The system of claim 40, wherein the means for calculating a smoothedpixel based on values in the smoothing filter further comprises meansfor selecting the first dominant edge end pixel as a first edge endpixel and the second dominant edge end pixel as a second edge end pixelwhen an absolute value of a difference between the dominant edge measureand the secondary edge measure is less than or equal to the edgedominance threshold and the dominant edge characteristic is greater thanor equal to the secondary edge characteristic.
 42. The system of claim41, wherein the means for calculating a smoothed pixel based on valuesin the smoothing filter further comprises means for selecting the firstsecondary edge end pixel as a first edge end pixel and the secondsecondary edge end pixel as a second edge end pixel when an absolutevalue of a difference between the dominant edge measure and thesecondary edge measure is less than or equal to the edge dominancethreshold and the dominant edge characteristic is less than thesecondary edge characteristic.
 43. The system of claim 33, furthercomprising means for generating an output pixel.
 44. The system of claim43, further comprising means for determining whether the current pixelis a still pixel; and wherein the output pixel is equal to the currentpixel if the current pixel is a still pixel and the output pixel isequal to the smoothed pixel if the current pixel is not a still pixel.45. The system of claim 43, further comprising means for detectingsubtle structures around the current pixel.
 46. The system of claim 45,wherein the output pixel is equal to the current pixel when subtlestructures are detected and the output pixel is equal to the smoothedpixel when subtle structures are not detected.
 47. The system of claim45, wherein the means for detecting subtle structures around the currentpixel further comprises: means for generating a subtle structurechecksum value; and means for comparing the subtle structure checksumvalue with a predefined set of checksum values, wherein each member ofthe predefined set of checksum values correspond to a member of apredefined set of pixel patterns.
 48. The system of claim 47, whereinthe means for generating a subtle structure checksum value comprisesmeans for generating a plurality subtle structure checksum bits bycomparing the smoothed pixels with a plurality of subtle structurepixels around the current pixel, wherein the subtle structure checksumbits form the subtle structure checksum value.
 49. The system of claim47, wherein the means for comparing the subtle structure checksum valuewith a predefined set of checksum values further comprises means forusing the subtle structure checksum value as an index to a lookup table.50. The system of claim 33, wherein the means for generating a smoothingfilter having a plurality of consolidated pixels further comprises meansfor normalizing a consolidation size number of pixels to form eachconsolidated pixel.
 51. The system of claim 33, wherein the means forgenerating a smoothing filter having a plurality of consolidated pixelsfurther comprises: means for generating a center entry of the smoothingfilter by normalizing a first consolidation range of pixels on a currentline containing the current pixel, wherein the first consolidation rangeof pixels is centered on the current pixel; means for generating a firstright center entry of the smoothing filter by normalizing a secondconsolidation range of pixels on the current line, wherein the secondconsolidation range is adjacent and to the right of the firstconsolidation range; and means for generating a first left center entryof the smoothing filter by normalizing a third consolidation range ofpixels on the current line, wherein the third consolidation range isadjacent and to the left of the first consolidation range.
 52. Thesystem of claim 51, wherein the first consolidation range includes afirst portion of a first pixel and a first portion of a second pixel,the second consolidation range includes a second portion of the firstpixel, and the third consolidation range includes a second portion ofthe second pixel.
 53. The system of claim 51, wherein the means forgenerating a smoothing filter having a plurality of consolidated pixelsfurther comprises means for generating a second right center entry ofthe smoothing filter by normalizing a fourth consolidation range ofpixels on the current line, wherein the fourth consolidation range isadjacent and to the right of the second consolidation range.
 54. Thesystem of claim 51, wherein the means for generating a smoothing filterhaving a plurality of consolidated pixels further comprises means forgenerating an above center entry of the smoothing filter by normalizinga fourth consolidation range of pixels on a previous line of the frame,wherein the pixels of the fourth consolidation range are in a sameposition of the previous line as the pixels of the first consolidationrange are in the current line.
 55. The system of claim 54, wherein themeans for generating a smoothing filter having a plurality ofconsolidated pixels further comprises: means for generating an aboveright entry of the smoothing filter by normalizing a fifth consolidationrange of pixel on the previous line, wherein the fifth consolidationrange is adjacent and to the right of the fourth consolidation range;and means for generating an above left entry of the smoothing filter bynormalizing a sixth consolidation range of pixel on the previous line,wherein the sixth consolidation range is adjacent and to the left of thefourth consolidation range.
 56. The system of claim 55, wherein themeans for generating a smoothing filter having a plurality ofconsolidated pixels further comprises: means for generating a belowcenter entry of the smoothing filter by normalizing a seventhconsolidation range of pixels on a next line of the frame, wherein thepixels of the seventh consolidation range are in a same position of thenext line as the pixels of the first consolidation range are in thecurrent line. means for generating an below right entry of the smoothingfilter by normalizing a eighth consolidation range of pixel on the nextline, wherein the eighth consolidation range is adjacent and to theright of the seventh consolidation range; and means for generating anbelow left entry of the smoothing filter by normalizing a ninthconsolidation range of pixel on the next line, wherein the ninthconsolidation range is adjacent and to the left of the seventhconsolidation range.
 57. An image smoother configured to generate asmoothed pixel for replacing a current pixel of a current framecomprising: a pixel consolidation unit configured to consolidate pixelsfrom the current frame; and a smoothed pixel calculation unit coupled tothe pixel consolidation unit and configured to generate the smoothedpixel using data from the pixel consolidation unit.
 58. The imagesmoother of claim 57, wherein the pixel consolidation unit is configuredto generate a smoothing filter having a plurality of consolidatedpixels.
 59. The image smoother of claim 58, further comprising an edgedetection unit coupled to the pixel consolidation unit and configured todetermine dominant edge information for a dominant edge and secondaryedge information for a secondary edge within a smoothing filter definedby the pixel consolidation unit.
 60. The image smoother of claim 59wherein the dominant edge information includes a dominant edge measureand the secondary edge information includes a secondary edge measure,wherein the dominant edge measure is greater than or equal to thesecondary edge measure.
 61. The image smoother of claim 59, furthercomprising an edge threshold checking unit coupled to the edge detectionunit and configured to provide the smoothed pixel calculation unit witha first edge end pixel and a second edge end pixel.
 62. The imagesmoother of claim 61, wherein the smoothed pixel calculation unit isconfigured to calculate the smoothed pixel using the first edge endpixel, the second edge end pixel, and a center entry of the smoothingfilter.
 63. The image smoother of claim 57, further comprising an outputpixel selection unit coupled to receive the smoothed pixel from thesmoothed pixel calculation unit.
 64. The image smoother of claim 63,further comprising a still pixel detection unit coupled to the outputpixel selection unit.
 65. The image smoother of claim 64, wherein theoutput pixel selection unit selects the smoothed pixel as the outputpixel when the still pixel detection unit determines that the currentpixel is a moving pixel.
 66. The image smoother of claim 63, furthercomprising a subtle structure checking unit coupled to the output pixelselection unit.
 67. The image smoother of claim 66, wherein the outputpixel selection unit selects the current pixel as the output pixel whenthe subtle structure checking unit detects subtle structures near thecurrent pixel.